.. note::
Ciao, benvenuto nella Community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 con altri appassionati.
**Perché unirti a noi?**
- **Supporto Esperto**: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
- **Impara e Condividi**: Scambia consigli e tutorial per migliorare le tue competenze.
- **Anteprime Esclusive**: Ottieni accesso anticipato ai nuovi annunci di prodotti e alle anteprime.
- **Sconti Speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
- **Promozioni Festive e Omaggi**: Partecipa a giveaway e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi stesso!
2.1.2 Interruttore a Scorrimento
===================================
Introduzione
---------------
In questa lezione impareremo a utilizzare un interruttore a scorrimento.
Solitamente, l'interruttore a scorrimento è saldato sul PCB come interruttore
di alimentazione, ma qui lo inseriamo nella breadboard, anche se potrebbe non
essere ben saldo, per dimostrarne la funzione.
Componenti
-------------
.. image:: img/list_2.1.2_slide_switch.png
Principio
-------------
**Interruttore a Scorrimento**
.. image:: img/image156.jpeg
Un interruttore a scorrimento, come suggerisce il nome, funziona facendo
scorrere la leva per connettere o interrompere il circuito, commutando così
i circuiti. I tipi più comuni sono SPDT, SPTT, DPDT, DPTT, e vengono utilizzati
frequentemente nei circuiti a bassa tensione. Presenta caratteristiche di
flessibilità e stabilità, ed è ampiamente utilizzato in strumenti elettrici e
giocattoli elettronici.
Funzionamento: Imposta il pin centrale come fisso. Quando fai scorrere
l'interruttore a sinistra, i due pin a sinistra sono collegati; quando
lo fai scorrere a destra, si collegano i due pin a destra. In questo modo,
funziona come un interruttore per connettere o disconnettere i circuiti.
Vedi la figura seguente:
.. image:: img/image304.png
Il simbolo del circuito dell'interruttore a scorrimento è mostrato di seguito.
Il pin 2 nella figura si riferisce al pin centrale.
.. image:: img/image159.png
**Condensatore**
Un condensatore è un componente che ha la capacità di immagazzinare energia
sotto forma di carica elettrica o di produrre una differenza di potenziale
(tensione statica) tra le sue piastre, come una piccola batteria ricaricabile.
Unità standard di capacità:
Microfarad (μF) 1μF = 1/1.000.000 = 0,000001 = :math:`10^{- 6}` F
Nanofarad (nF) 1nF = 1/1.000.000.000 = 0,000000001 = :math:`10^{- 9}`\ F
Picofarad (pF) 1pF = 1/1.000.000.000.000 = 0,000000000001 = :math:`10^{- 12}`\ F
.. note::
Qui utilizziamo un **condensatore 104 (10 x 10^4 PF)**. Proprio come gli anelli
dei resistori, i numeri sui condensatori aiutano a leggere i valori una volta
assemblati sulla scheda. Le prime due cifre rappresentano il valore e l'ultima
cifra indica il moltiplicatore. Pertanto, 104 rappresenta una potenza di 10 x 10 alla 4 (in pF),
pari a 100 nF.
Schema Elettrico
--------------------
Collega il pin centrale dell’interruttore a scorrimento al GPIO17 e due LED
rispettivamente ai pin GPIO22 e GPIO27. Quindi, quando sposti l'interruttore,
vedrai i due LED accendersi alternativamente.
.. image:: img/image305.png
.. image:: img/image306.png
Procedure Sperimentali
--------------------------
**Passo 1:** Costruisci il circuito.
.. image:: img/image161.png
:width: 800
**Passo 2:** Vai alla cartella del codice.
.. raw:: html
.. code-block::
cd ~/davinci-kit-for-raspberry-pi/c/2.1.2
**Passo 3:** Compila.
.. raw:: html
.. code-block::
gcc 2.1.2_Slider.c -lwiringPi
**Passo 4:** Esegui il file eseguibile.
.. raw:: html
.. code-block::
sudo ./a.out
Durante l'esecuzione del codice, collega l'interruttore a sinistra e si
accenderà il LED giallo; spostandolo a destra, si accenderà il LED rosso.
.. note::
Se non funziona dopo l’esecuzione, o appare un messaggio di errore: \"wiringPi.h: No such file or directory\", fai riferimento a :ref:`faq_c_nowork`.
**Codice**
.. code-block:: c
#include
#include
#define slidePin 0
#define led1 3
#define led2 2
int main(void)
{
// Se l'inizializzazione di wiring fallisce, stampa un messaggio a schermo
if(wiringPiSetup() == -1){
printf("setup wiringPi failed !");
return 1;
}
pinMode(slidePin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
while(1){
// interruttore alto, led1 acceso
if(digitalRead(slidePin) == 1){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
printf("LED1 on\n");
delay(100);
}
// interruttore basso, led2 acceso
if(digitalRead(slidePin) == 0){
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
printf(".....LED2 on\n");
delay(100);
}
}
return 0;
}
**Spiegazione del Codice**
.. code-block:: c
if(digitalRead(slidePin) == 1){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
printf("LED1 on\n");
}
Quando l’interruttore è spostato a destra, il pin centrale e quello destro
sono collegati; il Raspberry Pi legge un livello alto sul pin centrale, quindi
LED1 si accende e LED2 si spegne.
.. code-block:: c
if(digitalRead(slidePin) == 0){
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
printf(".....LED2 on\n");
}
Quando l’interruttore è spostato a sinistra, il pin centrale e quello
sinistro sono collegati; il Raspberry Pi legge un livello basso, quindi
LED2 si accende e LED1 si spegne.